/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.geradormvc.modelo.dominio;

import br.com.geradormvc.excessao.GeradorMVCException;

/**
 *
 * @author douglas
 */
public class Principal {

    private String driver;
    private String url;
    private String usuario;
    private String senha;
    private String database;
    private String nomeClasse;
    private String nomeProjeto;

    public String getDatabase() {
        return database;
    }

    public void setDatabase(String database) throws GeradorMVCException {
        this.database = database;
        if (!this.isDatabaseValido(database.trim())) {
            throw new GeradorMVCException("O Banco de dados deve ser informado!");
        }
    }

    public String getDriver() {
        return driver;
    }

    public void setDriver(String driver) throws GeradorMVCException {
        this.driver = driver;
        if (!this.isDriverValido(driver.trim())) {
            throw new GeradorMVCException("O Driver referênte ao banco de dados deve ser informado!");
        }
    }

    public String getNomeClasse() {
        return nomeClasse;
    }

    public void setNomeClasse(String nomeClasse) throws GeradorMVCException {
        this.nomeClasse = nomeClasse;
        if (!this.isNomeClasseValido(nomeClasse.trim())) {
            throw new GeradorMVCException("O Nome da Classe deve ser informado!");
        }
    }

    public String getNomeProjeto() {
        return nomeProjeto;
    }

    public void setNomeProjeto(String nomeProjeto) throws GeradorMVCException {
        this.nomeProjeto = nomeProjeto;
        if (!this.isNomeProjetoValido(nomeProjeto.trim())) {
            throw new GeradorMVCException("O Nome da Projeto deve ser informado!");
        }
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) throws GeradorMVCException {
        this.senha = senha;
        if (!this.isSenhaValido(senha.trim())) {
            throw new GeradorMVCException("A Senha para conexão deve ser informada!");
        }
    }

    public String getURL() {
        return url;
    }

    public void setURL(String url) throws GeradorMVCException {
        this.url = url;
        if (!this.isURLValido(url.trim())) {
            throw new GeradorMVCException("A URL deve ser informada!");
        }
    }

    public String getUsuario() {
        return usuario;
    }

    public void setUsuario(String usuario) throws GeradorMVCException {
        this.usuario = usuario;
        if (!this.isUsuarioValido(usuario.trim())) {
            throw new GeradorMVCException("O Nome do Usuário deve ser informado!");
        }

    }

    private boolean isDatabaseValido(String database) {
        if (database == null || database.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isDriverValido(String driver) {
        if (driver == null || driver.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isNomeClasseValido(String nomeClasse) {
        if (nomeClasse == null || nomeClasse.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isNomeProjetoValido(String nomeProjeto) {
        if (nomeProjeto == null || nomeProjeto.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isSenhaValido(String senha) {
        if (senha == null || senha.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isURLValido(String url) {
        if (url == null || url.length() == 0) {
            return false;
        } else {
            return true;
        }

    }

    private boolean isUsuarioValido(String usuario) {
        if (usuario == null || usuario.length() == 0) {
            return false;
        } else {
            return true;
        }

    }
}
